//package com.wisely.xxboot.impl;
//
//import com.wisely.xxboot.dao.PersonRepository;
//import com.wisely.xxboot.domain.Person;
//import com.wisely.xxboot.service.DemoService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.cache.annotation.CacheEvict;
//import org.springframework.cache.annotation.CachePut;
//import org.springframework.cache.annotation.Cacheable;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
///**
// * <p>Description:</p>
// * <p>Copyright: Copyright (c) 2017</p>
// * <p>Company: 中视数讯</p>
// * <p>Site: www.digi-zones.com</p>
// *
// * @author shengping
// * @version 1.0
// * @date 2017/6/29
// */
//
///**
// * 20170703抛开mysql
// * @return
// */
//@Service
//public class DemoServiceImpl implements DemoService {
//    @Autowired
//    PersonRepository personRepository;
//
//    /**
//     * 回滚的例子
//     * @param person
//     * @return
//     */
//    @Transactional(rollbackFor = {IllegalArgumentException.class})
//    public Person savePersonWithRollBack(Person person){
//        Person p = personRepository.save(person);
//        if(person.getName().equals("aping")){
//            throw new IllegalArgumentException("aping在数据库已经存在，数据将会回滚");
//        }
//        return p;
//    }
//
//    /**
//     * 不回滚的例子
//     * @param person
//     * @return
//     */
//    @Transactional(noRollbackFor = {IllegalArgumentException.class})
//    public Person savePersonWithoutRollBack(Person person){
//        Person p = personRepository.save(person);
//        if(person.getName().equals("aping")){
//            throw new IllegalArgumentException("aping在数据库已经存在，数据将不会回滚");
//        }
//        return p;
//    }
//
//    //缓存的例子
//
//    @Override
//    @CachePut(value = "people", key = "#person.id")//1 cacheput缓存新增或更新的数据到缓存，其中缓存名称为people，数据的key是person的id
//    public Person save(Person person){
//        Person p = personRepository.save(person);
//        System.out.println("为id、key为："+p.getId()+"数据做了缓存");
//        return p;
//    }
//
//    @Override
//    @CacheEvict(value = "people") // 2 删除key为id的数据
//    public void remove(Long id){
//        System.out.println("删除了id、key为："+id+"的数据库缓存");
//    }
//
//    @Override
//    @Cacheable(value = "people", key = "#person.id") //3 cacheable缓存key的person的id数据到缓存people中
//    public Person findOne(Person person){
//        Person p = personRepository.findOne(person.getId());
//        System.out.println("为id、key为："+p.getId()+"数据做的缓存");
//        return p;
//    }
//
//}
